package com.kinglone.common.config;

import com.kinglone.common.utils.DateUtil;
import com.kinglone.common.utils.FileUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;
import java.io.File;

@Component
public class Properties {

    private String localFilePath = "d:/file";//本地文件路径
    private String testFilePath = "/home/file";//测试文件路径
    private String produceFilePath = "/home/file";//生产文件路径
    private String devFilePath = "/home/file";//dev文件路径
    private String fileUploadPath = "d:/file/upload";//文件上传路径//根据环境自由处理


    /**
     * 获取临时目录
     *
     * @author stylefeng
     * @Date 2017/5/24 22:35
     */
    public static String getTempPath() {
        return System.getProperty("java.io.tmpdir");
    }

    /**
     * 获取文件上传路径
     * @return
     */
    public String getFileUploadPath() {
        //初始化处理
        fileUploadPath = localFilePath;

        //如果没有写文件上传路径,保存到临时目录
        if (StringUtils.isEmpty(fileUploadPath)) {
            return getTempPath();
        } else {
            //判断有没有结尾符,没有得加上
            if (!fileUploadPath.endsWith(File.separator)) {
                fileUploadPath = fileUploadPath + File.separator;
            }
            //判断目录存不存在,不存在得加上
            if (!FileUtil.isTruePath(fileUploadPath)) {
                File file = new File(fileUploadPath);
                file.mkdirs();
            }
            return fileUploadPath;
        }
    }

    /**
     * 获取word模板地址路径
     *
     * @param modType 模板类型
     * @param eqpType 设备类型
     * @return 模板的地址
     */
    public String getWordModPath(String modType, String eqpType) {
        String filePath = "";
        //初始化处理
        //是生产环境

        fileUploadPath = localFilePath + File.separator + "template";

        if (StringUtils.isEmpty(fileUploadPath)) {
            return getTempPath();
        } else {
            //判断有没有结尾符,没有得加上
            if (!fileUploadPath.endsWith(File.separator)) {
                fileUploadPath = fileUploadPath + File.separator;
            }
            filePath = fileUploadPath + modType + File.separator + (modType + eqpType + ".docx");
        }
        return filePath;
    }

    /**
     * 根据分类获取,生成的打印文件地址
     *
     * @param modType
     * @return 打印文件保存地址
     */
    public String getFilePrintPath(String modType) {
        String filePath = "";
        //初始化处理
        //是生产环境

        filePath = localFilePath + File.separator + "print";
        //如果没有写文件上传路径,保存到临时目录
        if (StringUtils.isEmpty(filePath)) {
            return getTempPath();
        } else {
            //判断有没有结尾符,没有得加上
            if (!filePath.endsWith(File.separator)) {
                filePath = filePath + File.separator;
            }

            //获取当前年月
            String year = DateUtil.getYear();
            String month = DateUtil.getMonth();
            filePath = filePath + modType + File.separator + year + File.separator + month + File.separator;
            //判断目录存不存在,不存在得加上
            if (!FileUtil.isTruePath(filePath)) {
                File file = new File(filePath);
                file.mkdirs();
            }
            return filePath;
        }
    }

    /**
     * 根据分类保存上传文件
     *
     * @param fromType
     * @return
     */
    public String getFileUploadPath(String fromType) {
        //初始化处理
        //是生产环境

        fileUploadPath = localFilePath + File.separator + "upload";

        String filePath = "";
        //如果没有写文件上传路径,保存到临时目录
        if (StringUtils.isEmpty(fileUploadPath)) {
            return getTempPath();
        } else {
            //判断有没有结尾符,没有得加上
            if (!fileUploadPath.endsWith(File.separator)) {
                fileUploadPath = fileUploadPath + File.separator;
            }

            //获取当前年月
            String year = DateUtil.getYear();
            String month = DateUtil.getMonth();
            filePath = fileUploadPath + fromType + File.separator + year + File.separator + month + File.separator;
            //判断目录存不存在,不存在得加上
            if (!FileUtil.isTruePath(filePath)) {
                File file = new File(filePath);
                file.mkdirs();
            }
            return filePath;
        }
    }


}
